#ifndef HPLC_QINFINE_PUMPSENDSYSTEMPACKET_H
#define HPLC_QINFINE_PUMPSENDSYSTEMPACKET_H

#include "hplcqinfinepumpsendpacket.h"

namespace hplc
{
namespace qinfine
{

class HplcQinfinePumpProtocolData;
class HplcQinfinePumpSendSystemPacket
{
public:
    HplcQinfinePumpSendSystemPacket(HplcQinfinePumpProtocolData &data);

    void setWorkMode(quint8 mode, quint8 flag);
    void getWorkMode();
    void setFlowCalibDataCMD(quint8 cmd);
    void setFlowCalibData(float flow, float realFlow);
    void getFlowCalibData();
    void setFlowCalibLoadFlow(float flow);
    void getFlowCalibLoadFlow();
    void setFlowCalibLoadRealFlow(float flow);
    void getFlowCalibLoadRealFlow();
    void setFlowCalibLoadPress(float press);
    void getFlowCalibLoadPress();
    void setPressCalibDataCMD(quint8 cmd);
    void setPressCalibData(float press, float realPress);
    void getPressCalibData();
    void setPulseCompenDataCMD(quint8 cmd);
    void setPulseCompenData(float position, float compenFactor);
    void getPulseCompenData();
    void setPulseCompenDebugCMD(quint8 cmd);
    void getPulseCompenGearPos();
    void setStepMotorCurrentRun(quint8 current);
    void getStepMotorCurrentRun();
    void setMotorCurrentDataCMD(quint8 cmd);
    void setMotorCurrentData(float flow, quint8 current);
    void getMotorCurrentData();

protected:
    HplcQinfinePumpProtocolData *m_d = nullptr;
};

} // qinfine
} // hplc

#endif // HPLC_QINFINE_PUMPSENDSYSTEMPACKET_H
